iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
自我挑戰組

30天小老闆系列(1)--線上排班小工具系列 第 21

DAY21 搞樣式--CSS Gird小進階(Template Area)

  • 分享至 

  • xImage
  •  

前言

今天我們一樣使用上篇的格線佈局作為範例
https://ithelp.ithome.com.tw/upload/images/20210922/20136833dQfj33kVN5.jpg

假設我們現在想在容器(Container)中放入三個元件(item),分別是ABC,如下圖:
https://ithelp.ithome.com.tw/upload/images/20210922/20136833EdKq4gooLK.jpg

那我們程式碼的部分其實要寫滿長的,像這樣

.boxA {
  grid-column: 1/4;
  grid-row: 1/2;
}
.boxB {
  grid-column: 2/5;
  grid-row: 2/3;
}
.boxC {
  grid-column: 3/6;
  grid-row: 3/4;
}

是不是覺得很麻煩呢?又要數從哪條起始線到哪條終點線,又要寫好幾行,卻很不直觀
所以這時候我們就可以使用 Template Area 來解決我們的困擾囉!

Template Area 是什麼?

簡單來說,就是可以先將元件(item)命名,並透過容器(Container)設定元件(item)位置,讓我們直接來嘗試看看吧!

  • 使用 grid-area 將元件(item)命名
.boxA {
  grid-area: areaA;
}
.boxB {
  grid-area: areaB;
}
.boxC {
  grid-area: areaC;
}
  • 使用 grid-template-areas 於容器(Container)分配元件(item)位置
.container {
  grid-template-areas:
    "areaA areaA areaA . ."
    ". areaB areaB areaB ."
    ". .areaC areaC areaC";
}

可以看到我用到一個比較特別的屬性 .
.grid-template-areas 中使用,是留空白的意思哦!
所以以第一行來說就是前三格A,後兩格空白

.container {
  grid-template-areas:
    "areaA areaA areaA . .";
    /* "areaA areaA areaA 空白 空白"; */ 
}

這樣不曉得大家有沒有覺得比較直觀呢?


上一篇
DAY20 搞樣式--CSS Gird 怎麼用(下)?
下一篇
DAY22 搞樣式--CSS Gird小進階(對齊)
系列文
30天小老闆系列(1)--線上排班小工具30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言